Change sprintf() to babl_strcat() in model create_name()
babl/babl-model.c create_name uses an unsafe incantation of sprintf
to build names from concatenated components which should ideally use a
"%s" format specifier preceding the instance name.
Instead of fixing this, we replace it with a babl_strcat() based
alternative which allows us to remove the thread-unsafe static character
buffer at the cost of a few mallocs and a free.
Also do some cleanups, mainly to avoid two exit points from the
function, that increases readability and warns if a model with the
same name is registered twice.
This is bug #589021.